1. Field of the Invention
The present invention relates generally to input devices used to control computer systems or other technology. More specifically, the present invention relates to the automatic, dynamic configuration of such devices in order to accommodate the control requirements of users who may have disabilities, or be operating the devices in contexts which affect their control of the device.
2. Description of the Prior Art
As the design of information technology systems and applications develops, more and more features allowing them to be configured to suit a range of user preferences and requirements are included. Computer control devices such as keyboards, mice, switches and touch pads are often accompanied by software which allows users to configure the device response to suit their physical abilities, situation and task. As disucussed in the reference to Trewin, S. and Pain, H. entitled “Keyboard and mouse errors due to motor disabilities,” International Journal of Human-Computer Studies 50 (1999), pp. 109-144, appropriate configuration can be vital for computer users with physical disabilities, because the default mode of operation of the device may be unusable for them. For example, on a standard computer keyboard, a key that is held down will start to generate repeated characters after a certain time delay. A person with a disability which inhibits movement may find it difficult or impossible to raise their finger off the key before this delay is up. As a result, they will generate many unwanted repeated characters, making accurate typing impossible. Appropriate configuration of this delay value will eliminate unwanted key repeats, enabling accurate typing for this user.
The primary problem addressed by the present invention is that those individuals for whom configuration is most crucial are also those for whom it is most difficult to achieve independently. Previous approaches to device configuration have been manual, mediated by user-controlled tools, or assume a pre stored user profile and some form of user identification technique. All of these approaches have disadvantages. Manual configuration requires users to know how to perform configuration and to know what configuration they need. Both of these are often not the case, as indicated in the reference to Trewin, S. entitled “Configuration Agents, Control and Privacy,” Proceedings of the 1st ACM Conference on Universal Usability, November 15-17, Washington D.C., USA, pp 9-16, ACM Press (2000). Users do not know what they can adjust, do not know what to adjust the settings to (e.g. what value of delay for the key repeats to use), and have difficulty controlling systems in order to make adjustments. Configuration tools such as Wizards (e.g., Microsoft Corporation's Accessibility Wizard) provide a mechanism for finding the available settings but still require users to choose their own settings, and to use the interface in order to configure it. These approaches lead to a catch-22 situation in which users must configure their systems in order to be able to use them, but need to use them in order to configure them. This effectively makes independent access impossible for users with more severe disabilities. Approaches based on a user profile, such as discussed in the reference to Stephanidis, C., Paramythis, A., Sfyrakis, M., Stergiou, A., Maou, N., Leventis, A., Paparoulis, G. and Karagiannidis, C. Entitled “Adaptable and adaptive user interfaces for disabled users in the AVANTI project,” Intelligence in Services and Networks: Technology for Ubiquitous Telecom Services. 5th International Conference on Intelligence in Services and Networks, IS & N 98 Proceedings (1998), Springer-Verlag, 153-166, require the profile to be created in advance, which means using one of the manual or tool-based techniques, or having assistance. Furthermore, it also requires some standard way for the user to access their profile, or transfer it between machines, which may be physically or cognitively difficult to access. For example, users may forget ids and passwords, or forget to carry id badges, and may find it difficult to use schemes that require physical dexterity such as inserting cards in slots, or placing a steady finger on a fingerprint recognition surface.
A further aspect of input device configuration not addressed by these approaches is the dynamic nature of physical needs. While some user needs are permanent (e.g. amputee will always type with one hand and require an alternative way to generate multiple key presses such as Control-Alt-Delete), others may change over the short term (e.g. due to fatigue, or background noise) or long term (e.g. due to accident, healing, progression of disease, or the normal aging process). Existing configuration mechanisms do not accommodate the dynamic nature of users' requirements.
In support of this approach, it has been shown that it is possible to dynamically infer configuration requirements for the standard computer keyboard from the user's keystroke data. Such a showing is described in the reference to Trewin, S. entitled “Towards intelligent, adaptive input devices for users with physical disabilities,” PhD Thesis, University of Edinburgh, Great Britain (1998) and in the reference to Trewin, S. and Pain, H. entitled “A model of keyboard configuration requirements,” Behaviour and Information Technology Special issue on Assistive Technologies for People with Disabilities 18, 1 (1999), pp. 27-35. Similar techniques could be developed for other input devices such as the mouse, touch screen or head tracker.
The keyboard user modeling techniques described in these two references have been incorporated into a configuration tool called the “Keyboard Optimizer.” This tool allows users to demonstrate their typing and provides them with suggestions for configuration modifications. Users then choose whether to try those settings, and can accept or reject them. Although the Keyboard Optimizer is easier to use and more accessible than other configuration mechanisms it does not completely solve the problems outlined above because users must still know that the program exists and be capable of launching it before they can benefit from its suggestions. Similarly, speech recognition programs such as IBM's Via Voice build user models from samples of user input. However, they require a user to go through a sequence of configuration tasks in order to create this user model, in this case a voice profile. This necessitates the use of some alternate control technique while the voice profile is being built, and so does not provide independent access for voice-only users.
In summary, in present day systems the process of configuration is entirely in the user's hands. Configuration facilities are not always used by those who would benefit from them due to problems with existing configuration mechanisms, specifically:                1) Lack of confidence in performing configuration;        2) Lack of knowledge of how to change the configuration;        3) Lack of awareness of the available options. In one study of keyboard configuration, only 35% of the 20 participants with disabilities had a computer teacher available. The remainder relied on themselves, friends, colleagues and family members for support.        4) Difficulty in identifying the appropriate solution to a problem. For example, it can be difficult for a user, or indeed an observer, to tell if two copies of a character appeared because they pressed the key for too long or accidentally pressed it twice. The solution to the former problem is to increase the key repeat delay—the time before a key starts to repeat when it is held down. Accidental double presses, on the other hand, require the use of the Bounce Keys configuration utility to introduce a debounce time. After a key is pressed, it will not register again until the debounce time has expired, thus preventing unintended additional key presses. In present day systems, users often choose configuration settings by a process of trial and error.        5) Lack of control over the unconfigured interface. For example, a user unfamiliar with a default system language may be unable to find out how to change the language themselves. A novice user with a disability affecting their use of the mouse may have difficulty in controlling the mouse well enough to find out about keyboard shortcuts, or to access the control panel in which they can adjust the mouse sensitivity.        
Therefore, a need exists for providing a system and method for personalizing computer input in a manner so that computer control devices such as keyboards, pointing devices, switches, gesture interfaces and other type control device may be automatically configured in real time to match the user's requirements.